Skip to content

Conversation

@johnpaulashenfelter
Copy link
Collaborator

  • WIP: Upgrade to ruby 3.3.8
  • Tests pass
  • This work is part of [link an issue]

What is the goal of this PR and why is this important?

How did you approach the change?

Anything else to add?

@@ -1,4 +1,4 @@
FROM ruby:2.7.8-buster
FROM ruby:3.3.8
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Probably should pick the version

@@ -1,4 +1,4 @@
FROM ruby:2.3
FROM ruby:3.3.8
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Same -- should pick a version.

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

choosing bookwork, but not slim since this is dev

ruby "3.3.8"

gem 'rails', '~> 6.1.0.0'
gem "rails", "~> 6.1.7"
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Upgraded to latest in 6.1.x instead of just 6.1.0. Smooths some ruby3+ issues too.

gem 'bootstrap-sass'
gem 'sass-rails', '~> 6.0.0'
#gem 'sass-rails', '~> 6.0.0'
gem "sassc-rails", ">= 2.1.2"
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

sass is always a problem. This was simpler than using dart.

gem 'draper'
gem 'paperclip', '~> 6.0.0'
gem 'aws-sdk-s3', '~> 1.98.0'
gem "kt-paperclip", "~> 6.4", ">= 6.4.1"
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is the supported version of paperclip now that thoughtbot no longer maintains.

gem 'paperclip', '~> 6.0.0'
gem 'aws-sdk-s3', '~> 1.98.0'
gem "kt-paperclip", "~> 6.4", ">= 6.4.1"
gem 'aws-sdk-s3'
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Unlocking so we get newer versions. We use the simplest command in the gem so odds are good its fine.

gem 'wicked'
gem 'search_cop', '~> 1.0.6'
gem 'mandrill_mailer', '~> 1.0.1'
gem 'mandrill_mailer'#, '~> 1.0.1'
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Unlocking so upgrade works

gem 'mandrill_mailer'#, '~> 1.0.1'
gem 'jwt', '~> 1.2.1'
gem 'httparty', '~> 0.13.7'
gem 'httparty'
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Unlocking so upgrade works

gem 'premailer-rails'
gem "bcrypt", '3.1.16'

gem "json", ">= 2.6", "< 3" # or simply: gem "json", "~> 2.7"
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Forcing a newer version for Ruby 3.x

gem 'dotenv-rails'
gem 'faker'
gem 'factory_bot_rails', '~> 6.0.0'
gem 'factory_bot_rails'
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Unlocking so it can upgrade. Test/dev so low risk.

# Ensure the SQLite 3 gem is defined in your Gemfile
# gem 'sqlite3'
#
default: &default
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pysch changes in ruby 3.3+ disable aliases by default for [reasons] so just expanding the alias in the new file.

Copy link
Collaborator

@elasticspoon elasticspoon left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Worked for me. 🚀

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This gets rid of both production and staging in the config. Whats the thinking there?

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Honestly assumed it ends up being a DATABASE_URL or injected during deploy. Easy enough to copy it back in /cc @carlost

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

that is how it is happening on the DO apps platform now ... with a URL re-write to modify the scheme. if i recall correctly, DO is exporting the database url as mysql:// and that maps to the older mysql DB adapter. so it is rewritten to mysql2:// (iirc)

@johnpaulashenfelter
Copy link
Collaborator Author

Closing in favor of #65

@johnpaulashenfelter johnpaulashenfelter deleted the upgrade/ruby-3.3 branch September 12, 2025 16:04
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants